#pragma once
#include <list>
using namespace std;
struct user_info;
typedef user_info USER_INFO;
typedef list<USER_INFO> USER_LIST;
struct message;
typedef message MESSAGE;
struct sockaddr_in;

class ChatSrv
{
public:
    ChatSrv(int port = 5188);
    ~ChatSrv();
    bool start ();
    void run ();
private:
    /* data */
    int sock;
    int port;
    sockaddr_in servaddr;

    // 聊天室成员列表
    USER_LIST client_list;

    void do_login(MESSAGE& msg, struct sockaddr_in *cliaddr);
    void do_logout(MESSAGE& msg, struct sockaddr_in *cliaddr);
    void do_sendlist(struct sockaddr_in *cliaddr);
};
